package br.com.agenda.server.servidor;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

import br.com.agenda.negocio.entity.IAgenda;
import br.com.agenda.negocio.entity.IConvite;
import br.com.agenda.negocio.entity.IEvento;
import br.com.agenda.negocio.entity.IUsuario;

public interface IServicoServidor<T> extends Remote{

	public IAgenda localizarAgenda(String nomeUsuario) throws RemoteException;

	public void adicionaAgenda(IAgenda agenda) throws RemoteException;

	public void adicionaUsuario(IUsuario usuario) throws RemoteException;
	
	public List<IUsuario> getUsuarios() throws RemoteException;

	public List<IUsuario> getContatos(String propietario) throws RemoteException;

	public boolean existeContato(String contato) throws RemoteException;

	public IUsuario getContato(String contato) throws RemoteException;

	public void enviarConvites(IEvento evento) throws RemoteException;

	public void respostaConvite(IUsuario usuario, IConvite convite, boolean conviteConfirmado)throws RemoteException;

	public void marcarEventoNosContatos(IEvento evento) throws RemoteException;
}
